プログラミングやRPG(作るほう)が好きな人の日記
このホームページは毎日 夜11時にアクセスできなくなります。朝6時半に再開されます。
(世の中のネット依存対策として)
水曜日に作った実体配線図(部品と部品を 実際に配線したように描いた回路図)を元にして、実際に電子回路を作って、動かしてみました。
ここでやっていることは「温度とか光の強さなどの「程度」について、一定以上ならオン、そうでないならオフにする」というものです。(一般的に「アナログをデジタルにする」という言われ方をします)
木曜日の夜に材料の部品などを用意しておきました。当日になって用意がないと、ほかの趣味とかに走りそうなので。
先日はやる気がないと言っていましたが、やってみると結構楽しいです!
実体配線図を元に 電子回路を組みました → |
||
▲水曜日に作った実体配線図 | ▲今日作った電子回路 |
怖いのは、配線を間違えて、プラスとマイナスを直結しているんじゃないか?ということです。そういう場合電源を入れると、回路のどこかが燃えると思います。
そうなる前に作った回路が実体配線図のとおりかどうか確認したほうが良いです。
配線が多いとどうやって確認するのが良いか迷いますが、今回は以下の方法で確認しました。
作った実物を見ながら 配線を描いてみます → |
||
▲実体配線図のとおりに部品だけ描く。 | ▲実物の配線を書き込んで、実体配線図の配線と比べて一致すればOK。 |
余談:
確認をしても、電源を入れるときは思い切りが必要です。その回路が「問題ない」とだれも保証してくれないので…。
私は、思い切って「でやっ!」と電源を入れた後はすぐに回路に鼻を近づけてニオイをかぎます。プラスマイナスを直結していれば、焦げ臭くなるはずですから。
でも、今回は大丈夫でした★
左の画像リンクをクリックすると 画像を拡大 します。
自分で作成した動作チェックのとおりにチェックした様子を動画にしました。(1分37秒/2.33MB)
私自身も自分で作った動画なのに 何をやっているのか よくわかんないので、皆さんも見てもらってもわからないかもしれません。
この動画は、こんな波形になるよ、という動きを見てもらいたくて動画作成しましたが、いまいちかも?
実体配線図と動画を並べておきます。
回路の細かい動きの十分な理解はできていませんが、正体不明だった回路図が少し自分のものになった感じがするし、動作チェックも最初は何をやっているのかわからないままにチェックをしていましたが、見えなかったところが見えてきました。
ついでに言うと、回路は「ウィンドウコンパレーター」という、どこからどこまでという範囲指定で電圧を判断してくれるものだと思うんですが、動画の動きを見るとどうも範囲というよりは「一定以上」という動きだけをしているように見えます。VR2を回して "最初"、"真ん中"、"最後" で動きが オフ オン オフ となってくれたらまさしく「ウィンドウコンパレーター」(範囲で判断)だと思うんですが。。実際どうなんでしょうね。
その辺気になって調べました。
「ウィンドウコンパレーター」についてネット検索しても、あまり情報が出てこなかったので、私が持っている月刊誌「トランジスタ技術」30冊ほどの中から探そうと思いました。
トランジスタ技術のサイトへ行き、「目次データベース」をダウンロード。
左の画像リンクをクリックすると 画像を拡大 します。
資格試験の回路図とその記事の回路図を見比べると、まさしく「ウィンドウコンパレーター」のようです。
(資格試験のほうは一部違うもの(VR2など)が付いていますが無視してよさそうです)
(私はこの回路図の意味がわかるかと言ったら、わかりません)
そして、その記事の「基準電圧の求め方」のとおり計算すると…
この3.717という数字が、3.6Vに近いですね。きっとこれで正しいんでしょう。
(資格試験の回路で15kという抵抗は持っていなかったので14.7kにしているし、VR1はだいたい23kまで回している…ということで)
電子機器組み立ての回路の「ウィンドウコンパレーター」の部分が、この下限電圧と上限電圧の範囲内のときにOUTPUTに1を出力し、範囲外の時に0を出力していれば良いわけです。
その確認(実験)をするためには、前述で赤文字で書いた部分の「プラスとマイナスを間違えた」というのを直したほうが良さそうです。オシロスコープで見たときの動きが逆だと実験しづらいですから。。
実験に向けて間違えていたのを直して、さらにこの回路のままだとウィンドウコンパレーターの下限電圧を見られないので、さらに直しました。
VR1を0Ωまで下げたとき電圧は2.4Vほどあり、下限電圧の1.282Vを見ることができません。そこで回路を少し変更。
左の画像リンクをクリックすると 画像を拡大 します。
ウィンドウコンパレーター動作の動画:
(34秒/1.14MB)
ちゃんとウィンドウコンパレーターでした。
(プラスマイナス逆転の不具合は、結局よくわかんなかった)
ウィンドウコンパレーターだと確認できたところで、じゃあ、ということで、トランジスタ技術の記事のこのグラフを再現してみようと思いました。
ウィンドウコンパレーターってこうだよ、というグラフ。
左の画像リンクをクリックすると 画像を拡大 します。
回路のINPUT部分(左図左下の赤い部分)に、ファンクションジェネレータで三角波を入力します。(今まではVR2を回すことで「入力の代わり」としていました。実際の試験でもVR2はそういう役割だと思います)
ファンクションジェネレーターは秋月のコレの型番の古い2万5千円くらいだったほうを使っています。その製品はもう売っていないみたいですが…参考までに。
左の画像リンクをクリックすると 画像を拡大 します。
「コンパレーターICの出力がオープン・コレクタ(ドレイン)ではなくてTTLまたはCMOSの場合は、二つの出力をANDまたはNANDゲートICでまとめます.」
と書いてあります。これって今の自分のこと?
左の画像リンクをクリックすると 画像を拡大 します。
2020年12月29日追記:
1級/2級電子機器組み立て実技試験問題の「支給材料」のページ(いわゆる部品表)を見ると、当該の IC は、
「IC2, 4 デュアル差動コンパレータ LM393、DIP LM393N相当品」
とあります。この IC のデータシートを WEB 検索して確認しみると、
The outputof eachcomparatorin the LM193is the opencollectorof a grounded-emitterNPNoutputtransistorwhichcan typicallydrawup to 16 mA.
Google翻訳:
LM193の各コンパレータの出力は、接地されたエミッタNPN出力トランジスタのオープンコレクタであり、通常は最大16mAを引き出すことができます。
データシートにこのように書かれている通り、この IC の出力はオープンコレクタなので、上記赤文字部分はこの実験では当てはまらないみたいです。
でも下記では期待した波形が出ているので、ちょっと真相はわかりません。
赤文字が正しかったようで、ちゃんと波形が出ました!
計算結果の上限電圧3.71Vと下限電圧1.28Vも水平線(左図のY1, Y2)で表示しています。
左の画像リンクをクリックすると 画像を拡大 します。
最終版の実体配線図を載せておきます。
上記赤文字の "二つの出力をANDにまとめる” の部分を緑の太い線で示しました。
最後に比較回路の回路図と、実際の基板との対応を確認しておきます。
実験した回路が基板のどこに当たるのか、ある程度把握しておいたほうが良いでしょう。
左の画像リンクをクリックすると 画像を拡大 します。
電子機器組み立て1級の資格試験への取り組みについてやる気があまり出なかったんですが、以下のような「やる気」への対策を行いました。
今現在、いろいろ手を付けることができています。(やる気が出た)
次回は今回の後段の「単安定マルチバイブレータ回路」という正体不明のものをやろうと思います。
予約注文していた「ソーサリアン コンプリート Windows10対応版」が発売日当日の今日、届きました。
どんなかなぁ~
国家資格「電子機器組み立て1級」を受験しようと思っています。学科は合格していて、残りは実技だけです。(8月末試験日)
組み立ての力を認定する資格なので、回路図の動きを知らなくても パーツを所定の場所に取りつけさえすれば 試験に合格することができます。でも、私はあまり組み立て作業に自信がないので、回路図を理解することで「底力」にしようと思いました。
上図は電子機器組み立て1級、2級の回路図で、明るい部分は「比較回路(コンパレータ回路)」と呼ばれています。
とりあえず、この部分を理解しようと思いました。
ちなみに、資格試験のこの回路全体は、「省エネコントローラー」と呼ばれていて、”夜間に人がいれば、照明など家電の電源をオンにする” というものです。
上図回路図の明るい部分の回路を、配線に注目した回路図に直してみました。
何をやっているのか、さっぱりわかりませんよね。私も細かいところはわかんないです。
でもおおざっぱに、この回路を説明のために「プログラム」で表すとこういうことです。
if( INPUT > minValue && INPUT < maxValue ) OUTPUT = true; else OUTPUT = false;
センサーから受け取った電圧(上図 INPUT )が指定範囲内なら OUTPUT に高い電圧(デジタルの1)が出て、範囲外なら低い電圧(デジタルの0)が出てくるというものです。(コンパレーター回路の中でも「ウィンドウ・コンパレーター」というものだそうです→●)
プログラムだとたった1行でできるものを、電子回路で行おうとするとこんなに複雑になるものなんですね。
今週の週末あたり、この回路を実際に組んで、オシロスコープで様子を見てみようと思います。
RPGやJavaScript、イラストは「泥で作った船」ですが、電子機器組み立てへの取り組みは「小柄ながらしっかりしているボート」です。RPGなどは私にとっては大きな夢ですが、それで世の中へ うかつに漕ぎだすと泥が溶けてすぐに転覆します。でも電子機器組み立てなど、本業に関係する資格への取り組みはお金(給料)に結びついているので転覆せず、安定します。いつもそう自分に言って聞かせていますが、なにぶん、契約社員で派遣なので、いつ転覆してもおかしくないです。
「作業の前は外に出て何かの写真を撮ってくる」、ということで、ホームページの日付の右端にその写真を掲載するようにしました。
どうもパソコンの前に座ると一日中外に出ない傾向があってあまりよくないので、続くかわかりませんが作業の前は外に出て何かの写真を撮ってくることにしてみました。大した写真ではありませんので…(言葉通り)。
実際に青を取った(空の上のほう) #3b5879 |
HTMLのCSSの グラデにすると → |
実際に青を取った(空の下のほう) #90bce9 |
このように実際の資料(写真)から青を取ってくると、それっぽい空になり、見る人の心に届きやすくなります。
みなさんも何か創作をするときは、あてずっぽうで作らず、資料を参考にすると良いでしょう。
(青を取るとき、「1色でいいかな」と思っていたんですが、そうはいかず、上下2色取らないと表現できないことに気づきました)
このホームページは夜の11時にアクセス不能になり、翌朝6時半に再開されます。
ふと気が付きましたが、この時間の判定は、サーバーコンピューターの中で行っているので、アクセスする人が日本から見た地球の裏側のフランスからアクセスしていると、サーバーは日本にあると思うので、多分時間通りの動作になっていません。
つまり日本で夜の11時にアクセスできなくなるというのは、フランスでも同じ時間ではなく、フランスではよくわかりませんがたぶん昼間の11時にアクセスできなくなるんじゃないかと。サーバーはサーバー(日本)の時刻を見ているのであって、通信相手であるブラウザ(フランス)の時刻を見ているわけではないので…
今度直さないと…。
このホームページで、キーボードのSHIFTキーを押しながらHキーを押すと、上に HELP というウィンドウが表示されます。
キーボードの↑↓キーで白黒反転カーソルを動かし、Enterキーで項目を選びます。マウスはスクロールのときに限って使います。
(この操作方法は、すばやく参照できるHことを意図しています)
このウィンドウではカテゴリ別に用語の意味を参照できます。
項目は随時追加していくつもりです。
先月はただの画像でしたが、今月は CLICK ME をクリックするとアニメします。
身体のそれぞれのパーツが関節で接続され、細やかなアニメーションになっています。
下図は体のパーツの画像です。
これらのパーツは Excel で作図しました。
Excel 上の図形機能でキャラを作って 描画拡張 タブ>PNG に保存>選択を各PNGに保存 ボタンを押すとパーツごとに PNG画像 にしてくれます。
「描画拡張」というリボンのタブは Excel VBA を使って自作したメニューです。
描画拡張>回転 ボタンを押すと、 関節を軸にして図形が回転する →
|
この図で頭と帽子は別個の図形ですが、データとしてはつながりを持たせているので一緒に回転されるようになっています。
通常の Excel の図形機能にはこの機能はなく、「描画拡張」による機能です。
PNG 画像を出力する際に一緒に JavaScript のための .js ファイルも出力します。Excel でキャラを作り、JavaScript はその画像と .js ファイルのデータを読んでアニメを行います。
アニメは複雑そうに見えますが、実はデータとしては「直立」と「おっと」の2つの「ポーズ」だけであり、その2つのポーズのあいだを補間することで複雑なアニメになっています。(ガンダムのプラモデルに例えて言うと、2つのポーズを作るだけで、2つのポーズをつなげるアニメができ上る、ということです)
ここで言う「補間する」とは、たとえば「直立」でまっすぐ伸びている(180度の)腰から、「おっと」で120度くらい曲がっている腰へと、180度から120度まで少しずつ変更していくということです。
すべての関節(図中のたくさんの赤い丸)で一斉に変更するので複雑なアニメが実現されます。
いつも言っていますが、こうやってみると、イラストというのは、ほんとに単純な図を寄せ集めて、適切な大きさ、適切な角度を作りさえすれば、描けてしまうんだなと思えてしまいますね。ただ、顔だけは複雑で、3D のモデリングでも「顔だけはポリゴン(分割数)が異常に多くなる」と言われています。
ところで、プログラムのなかで一番難しい数学は、座標を回転する sin, cos くらいで、ほかはだいたいは座標を足したり引いたりするような計算だけです。
とはいえ、身体のそれぞれのパーツは親子関係になっていて、親の座標や角度を原点(親のx,yを0,0とし親の角度を0とする)として子の座標と角度を計算する、というような「ローカル座標」の計算を行っています。
そして1つのパーツは複数の子を持つ(枝分かれを複数にできる)とか、画像を出力するExcelの図形のしくみがちょっとやっかいだったりと、いろいろあって、だいぶ苦悶した末、やっと目的のプログラムになったというところです。(先月話した「エレガントなプログラム」の話で言うと、目的は達成されているけど、エレガント(直線)ではなく、まわりくどい・無駄の多い(湾曲した)プログラムになっています)
「長かったな。」と自分のプログラミングの日誌に一言書いたほど長い時間悩みました。
今後、もうちょっとエレガントに改善したいと思っています。